#ifndef _MEMPAGE_T_
#define _MEMPAGE_T_

#include <iostream>
#include <list>


typedef char byte;

class memPage_t {

public:
	memPage_t(int size = 1024);
	~memPage_t();
	void setPosition(int position);
	int getPosition();

	bool isPageFull();
	bool isPageEmpty();
		
	int getCapacity();
	int getActualSize();
	
	void write(byte* data, int size, int position);
	byte* read(int position = -1);

	void setNextPage(memPage_t *nextPage);
	memPage_t &getNextPage();

	memPage_t(const memPage_t &other);
	memPage_t &operator=(const memPage_t &other);

private:
	int _capacity;
	int _usedSpace;
	byte* _page;	
	int _current;
	memPage_t* _nextPage;
};

#endif //_MEMPAGE_T_